/******************************************* *Script Name: Killer Command * *What it does: gets the killer of a corpse * *Author: LOL aka i_am_neo aka Neo Andrew * *For use with RunUO 2.0 * *Initial Release: 23/09/2008 * *******************************************/ using System; using Server; using Server.Network; using Server.Targeting; using Server.Mobiles; using Server.Items; namespace Server.Commands { public class KillerCommand { public static void Initialize() { CommandHandlers.Register("killer", AccessLevel.Player, new CommandEventHandler(killer_OnCommand)); } [Usage("killer")] [Description("Gets corpse's killer.")] private static void killer_OnCommand(CommandEventArgs e) { PlayerMobile from = e.Mobile as PlayerMobile; if (null != from) from.Target = new killerTarget(from); } } public class killerTarget : Target { public killerTarget(Mobile from) : base(10, false, TargetFlags.None) { from.SendMessage("Target the corpse you wish to check."); } protected override void OnTarget(Mobile from, object target) { if (target == from) // When players target themselves from.SendMessage("You don't seem to be a corpse!"); else if (target is PlayerMobile) // When players target other players from.SendMessage("Better target a corpse, not a person!"); else if (target is Mobile) // When players target other mobiles from.SendMessage("It's still moving!"); else if ( target is Corpse ) // When players target corpses { Corpse corp = target as Corpse; if (corp.Killer == null) from.SendMessage("Nobody seems to have killed this creature"); // No killer else if (corp.Killer is PlayerMobile) from.SendMessage("This creature was killed by " + (string)corp.Killer.Name); // the killer's a player else if (corp.Killer is Mobile) // the killer is another mobile { Mobile mob = corp.Killer as Mobile; if (mob is BaseCreature) // the killer is a BaseCreature { BaseCreature pet = mob as BaseCreature; if (pet.ControlMaster == null) from.SendMessage("This creature was killed by the following creature: " + (string)pet.Name); // the killer's a creature with no owner else from.SendMessage("This creature was killed by " + (string)pet.Name + ", a pet of " + (string)pet.ControlMaster.Name); // the killer's a creature owned by someone } else from.SendMessage("This creature was killed by the following creature: " + (string)mob.Name); // the killer's a mobile, that isn't a BaseCreature } else from.SendMessage("The killer of this creature cannot be determined!"); // Just in case :) } else from.SendMessage("Try targetting a corpse."); } } }